// 管理当前路由目录下的所有路由模块
const fs = require("fs");
const Router = require("koa-router");

// 创建主路由
const router = new Router();

// 同步读取当前目录下的所有文件和文件夹（获取所有可能的子路由文件）
const fileNames = fs.readdirSync(__dirname);
// 遍历文件列表，筛选并批量注册所有子路由
fileNames.forEach((fileName) => {
  // 筛选后缀为 .route.js 的文件（仅处理子路由文件）
  if (fileName.endsWith(".route.js")) {
    // 加载子路由文件，获取子路由实例（routerObj 即子路由对象）
    const routerObj = require(`./${fileName}`);
    // 将子路由的路由处理中间件（routerObj.routes()）挂载到主路由router
    // 注：router.use() 是 Koa 注册中间件的核心方法，此处用于整合所有子路由到主路由
    router.use(routerObj.routes());
  }
});

module.exports = router;
